n楼k棋子  如果想找到棋子不会碎的最高的那层楼   即使在最差的情况下扔的最少次数      要返回最少次数

假设P(n,k)代表n层楼k个棋子 即使在最差的情况下扔的最少次数(就是有时候可能几次就试出来了，有时候要更多次，)

p(0,k)=0
p(n,1)=n

暴力法
i代表第i层
cond1=1+p(i-1,k-1)//碎了
cond2=1+p(n-i,k)//没碎

count=max(cond1,cond2)+1
p(n,k)=min{count(1<=i<=N)}+1



map映射

map[i][j]=value    i个棋子扔j次最多可以解决多少层楼value

因为每个map里的值都是搞定最多
假设扔一个棋子碎了，则向上看map[i-1][j-1]   没碎向左看map[i][j-1]

map[i][j]=map[i][j-1]+map[i-1][j-1]+1


如果要求5个棋子搞定200层楼
找到5个棋子扔j次第一次大于200的 map[5][j],j即为所求值



	vector<int> MapChess(5, 0); 
	int res = 0;
	while (true)
	{
		res++;
		int previous=0;
		for (int i = 0; i < 5; i++)
		{
			int temp = MapChess[i];  
			MapChess[i] = MapChess[i] + previous + 1;   //注意这句 假设新的MapChess[i]为map[i][j] , 则previous为map[i][j-1]  旧的MapChess[i]为map[i-1][j-1]
			previous = temp;
			if (MapChess[i] >= 6)   6是楼层
				return res;
		}
	}